package com.netty.study.example;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;

public class TImeClient {

    private int port;
    private String host;

    public TImeClient(String host ,int port){
	this.port = port;
	this.host = host;
    }

    public void run()throws Exception{
	EventLoopGroup workerGroup = new NioEventLoopGroup();
	
	try{
	    //配置
	    Bootstrap bootstrap = new Bootstrap();
	    bootstrap.group(workerGroup)
	    .channel(NioSocketChannel.class)
	    .handler(new ChannelInitializer<SocketChannel>() {

		@Override
		protected void initChannel(SocketChannel channel) throws Exception {
		    channel.pipeline().addLast(new TimeHttpHandler());
		}

	    })
	    .option(ChannelOption.SO_KEEPALIVE,true);

	    ChannelFuture f = bootstrap.connect(host,port).sync();
	    f.channel().closeFuture().sync();
	}finally{
	    workerGroup.shutdownGracefully();
	}
	
    }

    public static void main(String[] args) throws Exception {

	int port ;

	if(args.length >0 ){
	    port = Integer.parseInt(args[0]);
	}else{
	    port = 8080;
	}
	new TImeClient("localhost", port).run();
    }
}
